
"""
定义一个空调类和对应的测试类
要求：
1、空调有品牌和价格两个属性，并且将属性私有化，提供公有的getXxx与setXxx方法对属性赋值和取值；
2、提供一个无返回值的无参数的开机的方法，内容打印一句话：“空调开机了...”；
3、提供一个无返回值的带1个int类型参数的定时关机的方法,(int类型的参数表示设定的分钟数)，内容打印一句话：“空调将在xxx分钟后自动关闭...”；
4、在测试类中创建出空调对象，并给空调的品牌和价格赋任意值；
5、使用空调对象获取空调的品牌和价格并打印到控制台上；
6、使用空调对象调用开机方法；
7、使用空调对象调用定时关机方法，并传递具体数据值，在控制台上可以看到的效果为：空调将在xxx分钟后自动关闭...
其中语句中的“xxx”是调用方法时传递的具体数据值；
"""
print("--------------------------------------------------------------------")
class air_contribute:
    brand = ""
    price = 0

    def value(self):
        print(f"这台空调的品牌是{self.brand}，价值{self.price}元")

    def getXxx(self):
        print(f"{self.brand}空调开机了......")

    def setXxx(self,time):
        print(f"空调将在{time}分钟后自动关闭...")

air1 = air_contribute()

air1.brand = "格力"
air1.price = 2400
air1.value()
air1.getXxx()
air1.setXxx(input("请设置运行时间："))

"""

人类：
    属性:
        姓名，性别，年龄，所拥有的手机剩余话费，手机品牌，手机电池容量，
        手机屏幕大小，手机最大待机时长，所拥有的积分。
    功能：
        发短信（要求参数传入短信内容）。
        打电话（要求传入要打的电话号码和要打的时间长度。程序里判断号码是
        否为空或者本人的话费是否小于1元，若为空或者小于1元则报相对应的错
        误信息，否则的话拨通。结束后，按照时间长度扣费并返回扣费（0~10分
        钟：1元/钟、15个积分/钟，10~20分钟：0.8元/钟、39个积分/钟，其
        他：0.65元/钟、48个积分/钟））
"""
print("--------------------------------------------------------------------")
class person:
    name = ""
    sex = ""
    age = 0
    phone_bill = 0
    phone_brand = ""
    battery_capacity = 0
    screen_size = 0
    max_standby_time = 0
    points = 0

    def text(self,content):
        print(f"发送短信内容为{content}")

    def call(self,tel,time):
        if tel == "":
            return print("电话号码为空")
        elif self.phone_bill < 1:
            return print("电话余额不足")
        else:
            if time <= 10 and time > 0:
                self.phone_bill -= time * 1
                self.points += time * 15
            elif time <=20 and time > 10:
                self.phone_bill -= (time - 10) * 0.8 +10
                self.points += (time - 10) * 39 +150
            else:
                self.phone_bill -= (time - 20) * 0.65 + 10 + 8
                self.points += (time - 10) * 48 + 150 + 390
            return print(f"话费余额为：{self.phone_bill}元，积分为{self.points}分")

p1 = person()
p1.name = "张三"
p1.sex = "male"
p1.age = 19
p1.phone_bill = 65
p1.phone_brand = "华为"
p1.battery_capacity = 4500
p1.screen_size = 5.0
p1.max_standby_time = 480
p1.points = 1000

p1.text(input("请输入短信内容:"))
p1.call(input("请输入拨打号码:"),int(input("请输入通话时间:")))

"""
i.定义了一个学生类：属性:学号，姓名，年龄，性别，身高，体重，成绩，家庭地
址，电话号码。行为：学习（要求参数传入学习的时间），玩游戏（要求参数传入
游戏名），编程（要求参数传入写代码的行数），数的求和（要求参数用变长参数
来做，返回求和结果）
"""
print("--------------------------------------------------------------------")
import time
class student:
    id = 0
    name = ""
    age = 0
    sex = ""
    height = 0
    weight = 0
    score = ""
    address = ""
    tel = ""

    def study(self,time):
        print(f"今日学习时长{time}小时")

    def play(self,game):
        print(f"准备开始玩《{game}》")
        print("link start",end="")
        for i in range(8):
            time.sleep(1)
            print(".",end="")
        print()
        print(f"欢迎来到{game}!")


    def program(self,rows):
        print(f"今日编写代码{rows}行")

    def sum(self,*args):
        sum1 = 0
        for i in args[0]:
            sum1 += int(i)
        return sum1
s = student()

s.id = 1710611
s.name = "张三"
s.age = 19
s.sex = "male"
s.height = 174
s.weight = 70
s.score = "97"
s.address = "北京八达岭长城好汉碑"
s.tel = "13098382114"

s.study(8)
s.program(235)
print("所求数之和为:",s.sum(input("请输入求和的数（用“,”隔开）:").split(',')))
s.play("刀剑神域")

"""
ii.车类：属性：车型号，车轮数，车身颜色，车重量，油箱存储大小 。功能：
跑（要求参数传入车的具体功能，比如越野，赛车）
    创建：法拉利，宝马，铃木，五菱，拖拉机对象

"""
print("--------------------------------------------------------------------")
class car:
    model = ""
    wheels = 0
    color = ""
    weight = ""
    tank_size = ""

    def run(self,function):
        print(f"{self.model}{function}跑来跑去!")

c1 = car()
c1.model = "法拉利"
c1.wheels = 4
c1.color = "red"
c1.weight = "1800KG"
c1.tank_size = "78L"
c1.run("跑车")

c2 = car()
c2.model = "宝马"
c2.wheels = 4
c2.color = "silvery"
c2.weight = "1740KG"
c2.tank_size = "60L"
c2.run("冰激凌车")

c3 = car()
c3.model = "铃木"
c3.wheels = 2
c3.color = "black"
c3.weight = "120KG"
c3.tank_size = "11L"
c3.run("摩托车")

c4 = car()
c4.model = "五菱"
c4.wheels = 4
c4.color = "black"
c4.weight = "1130KG"
c4.tank_size = "50L"
c4.run("货车")

c5 = car()
c5.model = "拖拉机"
c5.wheels = 4
c5.color = "blue"
c5.weight = "1000KG"
c5.tank_size = "11L"
c5.run("农用车")

"""
iii.笔记本：属性：型号，待机时间，颜色，重量，cpu型号，内存大小，硬盘
大小。  行为：打游戏（传入游戏的名称）,办公。
"""
print("--------------------------------------------------------------------")
class laptops:
    modle = ""
    standby_time = 0
    color = ""
    weight = 0
    cpu_model = ""
    memory_size = ""
    Hard_drive_size = ""

    def play(self,game):
        print(f"在用{self.modle}玩{game}")

    def bussiness(self):
        print(f"使用{self.modle}进行办公")

l1 = laptops()
l1.modle = "小米笔记本pro"
l1.standby_time = 8
l1.color = "silvery"
l1.weight = 1.95
l1.cpu_model = "R5-5600H"
l1.memory_size = "8G"
l1.Hard_drive_size = "512G"

l1.play("QQ飞车")
l1.bussiness()

"""
猴子类：属性：类别，性别，身体颜色，体重。行为：造火（要求传入造火的材料：
比如木棍还是石头），学习事物（要求参数传入学习的具体事物，可以不止学习一
种事物）
"""
print("--------------------------------------------------------------------")
class monkey:
    category = ""
    sex = ""
    color = ""
    weight = 0

    def fire(self,making):
        print(f"{self.category}使用{making}进行造火")

    def studying(self,*args):
        for i in args[0]:
            print(f"{self.category}正在学习{i}")

m1 = monkey()
m1.category = "金丝猴"
m1.sex = "male"
m1.color = "golden"
m1.weight = 10

m1.fire("木头")
m1.studying(["捕食", "丢果核"])
